package org.jing.ext.example;

import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Font;
import com.itextpdf.text.FontFactory;
import com.itextpdf.text.pdf.BaseFont;
import org.jing.core.lang.JingException;
import org.jing.core.util.FileUtil;
import org.jing.core.util.GenericUtil;
import org.jing.ext.pdf.itextpdf.DataList;
import org.jing.ext.pdf.itextpdf.DataRow;
import org.jing.ext.pdf.itextpdf.PdfTemplate;

import java.io.File;
import java.util.HashMap;
import java.util.Map;

/**
 * Description: <br>
 *
 * @author bks <br>
 * @since 2021-02-05 <br>
 */
public class Example4PdfTemplate {
    public Example4PdfTemplate() throws Exception {
        Map<String, String> map = GenericUtil.<String, String>buildMap(HashMap.class)
            .put("serialNo", "123124553")
            .put("pdfNo", "BTC1201203123")
            .put("transTimestamp", "2023-05-12 16:43:02")
            .put("unitAccNo", "18053901040000123").put("accNo", "6228481984231321").put("accBankNo", "180539")
            .put("accName", "测试户名测试户名测试户名测试户名测试户名测试户名测试户名测试户名测试户名").put("transAmt", "11238.05")
            .put("transBalance", "12312984125.52").put("remark", "备注备注备注备注备注备注备注备注备注备注备注").put("postscript", "附言")
            .put("serialNo$", "123124553").get();
        try (PdfTemplate pdfTemplate = new PdfTemplate("E:\\R\\repository\\Documents\\abc\\项目\\省公积金\\省直公积金电子回单模板.pdf")) {
            pdfTemplate.setBaseFont(FontFactory.getFont(FileUtil.buildPath("E:\\R\\repository\\Documents\\abc\\项目\\省公积金\\simkai.ttf"),BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED, 28f, Font.NORMAL, BaseColor.BLACK).getBaseFont());
            // pdfTemplate.setBaseColor(dConfig.getFontColor()[0], dConfig.getFontColor()[1], dConfig.getFontColor()[2]);
            // pdfTemplate.setBaseFontSize(dConfig.getFontSize());
            pdfTemplate.mapDataAndWrite(new DataList().putAll(map).getList(),
                new File("E:\\R\\repository\\Documents\\abc\\项目\\省公积金\\测试.pdf"));
        }
        /*// 根据Pdf模板文件实例一个Pdf模板对象
        PdfTemplate pdfTemplate = new PdfTemplate("temp\\pdf-1.pdf");
        // 设置全局字体
        pdfTemplate.setBaseFont("D:\\Workspace\\idea\\zhdl\\resources\\generate-pdf\\simkai.ttf");
        // 设置全局字体颜色
        pdfTemplate.setBaseColor(72, 16, 139);
        // 设置全局字体大小
        pdfTemplate.setBaseFontSize(14);
        // 指定输出文件
        File outputFile = new File("output.pdf");
        // 往DataList里塞东西
        DataList dataList = new DataList();
        dataList.add("f1", "f1");
        dataList.add("f2", "f2");
        dataList.add("f3", "f3");
        dataList.add("f4", "f4");
        dataList.add("f5", "f5");
        dataList.add("f6", "f6");
        dataList.add("f7", "f7");
        dataList.add("f8", "f8");
        dataList.add("f9", "f9");
        dataList.add("f10", "f10");

        // 为某个特殊的字段设置自定义的格式
        // 非必要不要这样使用, 会让生成的文件大小变大
        DataRow f11 = new DataRow("f11", "f11");
        f11.setFontSize(28);
        f11.setFontColor(55, 55, 55);
        f11.setFontStyle("D:\\Workspace\\idea\\zhdl\\resources\\generate-pdf\\simkai.ttf");
        dataList.add(f11);
        // dataList.add("f11", "f11");

        dataList.add("f12", "f12");
        dataList.add("f13", "f13");
        dataList.add("f14", "f14");
        dataList.add("f15", "f15");
        dataList.add("f16", "f16");
        dataList.add("f17", "f17");
        dataList.add("f18", "f18");
        dataList.add("f19", "f19");
        dataList.add("f20", "f20");
        dataList.add("f21", "f21");

        // 输出文件
        pdfTemplate.mapDataAndWrite(dataList.getList(), outputFile);*/
    }

    public static void main(String[] args) throws Exception {
        new Example4PdfTemplate();
    }
}
